#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import sys, datetime, json, logging, os, time, math
import pandas as pd
import xlrd
from xpy3lib.utils.XDataFrameUtils import XDataFrameUtils

"""
    # workbook = xlrd.open_workbook(my_file_path)
    # # get sheet
    # # table = workbook.sheet_by_index(0)  # by index
    # # table = workbook.sheets()[0]
    # table = workbook.sheet_by_name(sheet_name=my_sheet_name)  # by sheet-name
    # # 读取单元格数据：rowx，colx分别是行、列索引数（注意：从0开始）
    # value = table.cell_value(rowx=2, colx=0)
"""


def main():
    """
    我现在想做一个事。目的是读取一个excel文件，对其中一个sheet的数据进行整理，最后将其写入db2数据库进行保存。
    但是这个excel中的sheet中会有几种情况需要处理才能变成可以保存到数据库的形式（文件上传了 Benchmarks.xlsx）：

    1，excel中有的行是表格标题，不需要保存到数据库

    2，表格中有备注行，不需要保存到数据库，例如：表1表2，单位：，备注，或者直接在表格完后写几行文字备注（这个感觉不好识别）

    3，可能会有空行例如第一行不是表标题行直接就是空行（暂未发现，但想做一个判断）

    4，因为要存到数据库，列名就不能重复，遇到重复的列名想要做一下标记处理。我感觉会有几种情况判断，并且还存在合并单元格的情况，
    我想着如果有两行的column，就将其上下合并拼接在一起作为新的column。
    或者就是这种只有一行column，list=['品种','12月','上月','增减额','增减','1-12月','上年同期','增减额','增减']
    变成list=['品种','12月','上月','上月增减额','上月增减','1-12月','上年同期','上年同期增减额','上年同期增减']，
    但我没想好怎么实现，可能是遇到重复，就将重复的两个同时往前倒退一个拼接标记，还重复就用再往前的一个的进行拼接 判断是否重复。

    5，还有就是一个宽表被切成2个或多个表，打印1打印2sheet页就是这种情况，我想把这种情况的表拼接成一个宽表
    我目前的想法是先把一个sheet页中所有数据先去除合并单元格，将所有合并单元格数据使用其左上角数据代替，这个网上抄了一个。
    然后我把每一行作为一个list判断这行是属于title表标题，remark备注，column表的column，还是data要存的数据。
    然后根据分类再解决上面的问题，最后输出成能存到数据库正常的dataframe那种样式的数据，就是不知道这个想法靠不靠谱
    """
    # NOTE https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html

    my_file_path = 'Benchmarks.xlsx'

    my_sheet_name = '与去年同期比较'
    df_0 = pd.read_excel(io=my_file_path, sheet_name=my_sheet_name, skiprows=[0], nrows=33, usecols='A:H')

    # NOTE 这个就属于特殊情况，title相同要把下面的那个表拼接到上面那个表右边
    my_sheet_name = '打印1 '
    # 大中型钢铁企业1-12月主要财务经营指标
    df_1_left = pd.read_excel(io=my_file_path, sheet_name=my_sheet_name, skiprows=[0, 1], nrows=68, usecols='A:I')
    skiprow = [i for i in range(0, 74)]
    df_1_right = pd.read_excel(io=my_file_path, sheet_name=my_sheet_name, skiprows=skiprow, nrows=142-74, usecols='A:I')


    my_sheet_name = '打印2 '
    #df_与去年同期比较 = pd.read_excel(io=my_file_path, sheet_name=my_sheet_name, skiprows=[0], nrows=33, usecols='A:H')


    return 0


if __name__ == '__main__':
    start = datetime.datetime.now()

    status = main()
    elapsed = float((datetime.datetime.now() - start).seconds)
    print("Time Used 4 All ----->>>> %f seconds" % (elapsed))

    sys.exit(0)
